
package callProcs;

import java.math.BigInteger;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;


public class ProcsCliente {
    
    
  java.sql.Connection  con = null;
    public ProcsCliente(){
        try {
            con = DriverManager.getConnection("jdbc:mysql://localhost/bufete","root","1234");
        } catch (SQLException ex) {
            Logger.getLogger(ProcsInsertar.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
     public java.sql.ResultSet VerdatosCliente(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT concat(Nombre_cliente,' ', Apellido_cliente) AS 'Nombre' ,concat(No_registro_cliente,No_orden_cliente) AS 'No. Cedula' ,"+
                                 "Telefono, concat(dir.Direccion_cliente, ' ', dir.zona, ' ',muni.Nombre_municipio, ',', depto.Nombre_departamento) AS 'Direccion' , "+
                                 " c.idCliente , c.Dpi_cliente FROM Cliente c "+
                                 "INNER JOIN telefonocliente tel ON tel.Cliente_idCliente = c.idCliente  "+
                                 "INNER JOIN direccion_cliente dir ON dir.idDireccion_cliente = c.Direccion_cliente_idDireccion_cliente  "+
                                 "INNER JOIN  municipio muni ON muni.idMunicipio = dir.Municipio_idMunicipio  "+
                                 "INNER JOIN departamento depto ON depto.idDepartamento = muni.Departamento_idDepartamento "+
                                sentencia);
           return rs;
     }
     
     public java.sql.ResultSet VerdatoCliente(String sentencia) throws SQLException{
         java.sql.ResultSet rs = null ;
       
            Statement cs = con.createStatement();
            rs = cs.executeQuery("SELECT  Nombre_cliente, Apellido_cliente, concat(Nombre_cliente,' ', Apellido_cliente) AS 'Nombre' ,concat(No_registro_cliente,No_orden_cliente) AS 'No. Cedula' ,"+
                                 "month(Fecha_nacimiento) as 'MES', day(Fecha_nacimiento) as 'Dia', Year(Fecha_Nacimiento) as 'Año',"+
                                 "Telefono, dir.Direccion_cliente as 'Direccion', dir.zona as 'Zona' ,muni.Nombre_municipio as 'Muni',depto.Nombre_departamento as 'Depto' , "+
                                  "No_registro_cliente as 'Reg' ,No_orden_cliente as 'orden', "  +
                                    " c.idCliente , c.Direccion_cliente_idDireccion_cliente as 'Dir', c.Dpi_cliente , c.Estado_civil, c.Sabe_firmar FROM Cliente c "+
                                 "INNER JOIN telefonocliente tel ON tel.Cliente_idCliente = c.idCliente  "+
                                 "INNER JOIN direccion_cliente dir ON dir.idDireccion_cliente = c.Direccion_cliente_idDireccion_cliente  "+
                                 "INNER JOIN  municipio muni ON muni.idMunicipio = dir.Municipio_idMunicipio  "+
                                 "INNER JOIN departamento depto ON depto.idDepartamento = muni.Departamento_idDepartamento "+
                                sentencia);
           return rs;
     }
    
     public java.sql.ResultSet ObtenerMuni(String muni){
        java.sql.ResultSet rs = null ;
        try {
            
            Statement cs = con.createStatement();
            
                rs = cs.executeQuery("SELECT idMunicipio AS 'ID', Departamento_idDepartamento AS 'DEPTO',Nombre_Municipio as 'nombre' "+
                          " FROM municipio WHERE Nombre_Municipio LIKE '%"+muni+"%'"); 
           
        } catch (SQLException ex) {
            Logger.getLogger(ProcsCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
         
         return rs;
     }
     
    public void ActualizaCliente(int IdCliente , String nombre ,String apellido ,int idDireccion ,
                                    String FechaNac , boolean estado_civil , boolean firma, int registro,
                                    String orden,BigInteger dpi  ) throws SQLException{
        
        
          java.sql.CallableStatement cs = con.prepareCall("{call Actualiza_cliente("+IdCliente+",'"+nombre+"' , '"+apellido +"' ,"+ idDireccion +
                                                            ",'" + FechaNac+"',"+ estado_civil+ ","+ firma + ","+ registro+","+"'"+ orden + "',"+
                                                            dpi+")}");
    
           java.sql.Statement stmt  = con.createStatement();
           java.sql.ResultSet rs = cs.executeQuery();
        
        
        
        
    }
    
 
    
     
     
}